package cn.xzqwjw.taskmanager.service;


import cn.xzqwjw.taskmanager.domain.pojo.SysFrontRoute;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * @author rush
 */
public interface SysFrontRouteService extends IService<SysFrontRoute> {

  /**
   * 增加前端路由
   *
   * @param sysFrontRoute 要添加的前端路由
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String add(SysFrontRoute sysFrontRoute);

  /**
   * 根据id删除前端路由
   *
   * @param id 前端路由id
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String delById(Integer id);

  /**
   * 修改前端路由
   *
   * @param sysFrontRoute 要修改的前端路由对象
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String modifyAll(SysFrontRoute sysFrontRoute);

  /**
   * 根据id得到一条记录
   *
   * @param id 要查询的id
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String queryById(Integer id);

  /**
   * 查全部列表，后台管理调用
   *
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String listAll();

  /**
   * 得到全部路由列表，生成管理员菜单时调用
   *
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  List<SysFrontRoute> listAll4Menu();

  /**
   * 得到所有前端路由的分页列表
   *
   * @param pageCurrent 当前页数
   * @param pageSize    每页条数
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String listPage(Integer pageCurrent, Integer pageSize);

  /**
   * 设置菜单
   *
   * @param allRouterList 所有的路由列表
   * @param isSuperAdmin  是否是超级管理员
   * @return 菜单Map
   */
  Map<String, Object> setMenu(List<SysFrontRoute> allRouterList, boolean isSuperAdmin);

}
